package com.centon.auto_code.domain;

import com.centon.auto_code.domain.gen.SuperProFile;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ProFile extends SuperProFile implements Serializable {
    private static final long serialVersionUID = 1L;


    private List<ProTableColumn> columns; // vo 列表使用
    private ProModule module;
    private ProMicroService microService;
    private List<ProFun> funs; // controller 使用 method方法列表
    private List<ProField> fields; // vo 使用,用于vo类成员域
    private List<ProField> validateMethods; // 需要验证生成的方法

    private Set<String> importTypes = new HashSet<>(); // 方法返回类型import
    private String superName; // 继承的父类


    public List<ProTableColumn> getColumns() {
        return columns;
    }

    public void setColumns(List<ProTableColumn> columns) {
        this.columns = columns;
    }

    public ProModule getModule() {
        return module;
    }

    public void setModule(ProModule module) {
        this.module = module;
    }

    public ProMicroService getMicroService() {
        return microService;
    }

    public void setMicroService(ProMicroService microService) {
        this.microService = microService;
    }

    public List<ProFun> getFuns() {
        return funs;
    }

    public void setFuns(List<ProFun> funs) {
        this.funs = funs;
    }

    public List<ProField> getFields() {
        return fields;
    }

    public void setFields(List<ProField> fields) {
        this.fields = fields;
    }

    public List<ProField> getValidateMethods() {
        return validateMethods;
    }

    public void setValidateMethods(List<ProField> validateMethods) {
        this.validateMethods = validateMethods;
    }

    public Set<String> getImportTypes() {
        return importTypes;
    }

    public void setImportTypes(Set<String> importTypes) {
        this.importTypes = importTypes;
    }

    public String getSuperName() {
        return superName;
    }

    public void setSuperName(String superName) {
        this.superName = superName;
    }

    public boolean isGenService() {
        return genService;
    }

    public void setGenService(boolean genService) {
        this.genService = genService;
    }

    public Map<String, Map<String, Set<String>>> getPropertyValid() {
        return propertyValid;
    }

    public void setPropertyValid(Map<String, Map<String, Set<String>>> propertyValid) {
        this.propertyValid = propertyValid;
    }

    private boolean genService; // 是否生成Service类

    private Map<String, Map<String, Set<String>>> propertyValid; // 成员变量验证
}